package cn.com.greatwall.search.client.service;

import java.util.Map;

import com.fasterxml.jackson.databind.JsonNode;

import cn.com.greatwall.common.model.PageResult;
import cn.com.greatwall.search.model.LogicDelDto;
import cn.com.greatwall.search.model.SearchDto;

/**
 * @Author herw
 * @Time 2022-01-26 10:28:22
 * @Version 1.0
 * @Description: 搜索客户端接口
 */
public interface IQueryService {
    /**
     * 查询文档列表
     * @param indexName 索引名
     * @param searchDto 搜索Dto
     * @return
     */
    PageResult<JsonNode> strQuery(String indexName, SearchDto searchDto);
    
    /**
     * 查询文档列表
     * @param indexName 索引名
     * @param searchDto 搜索Dto
     * @param logicDelDto   逻辑删除Dto
     * @return
     */
    PageResult<JsonNode> strQuery(String indexName, SearchDto searchDto, LogicDelDto logicDelDto);
    
    /**
     * 访问统计聚合查询
     * @param indexName 索引名
     * @param routing   es的路由
     * @return
     */
    Map<String, Object> requestStatAgg(String indexName, String routing);
}
